{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using 1D CNN\n",
    "\n",
    "In this notebook, we will use 1D CNN to predict RUL of NASA's turbofan engine dataset FD001. We will show the implementation without going into the theory of CNN."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras import layers\n",
    "from tensorflow.keras.models import Sequential\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(34)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow Version:  2.3.0\n",
      "Numpy version:  1.18.5\n",
      "Pandas version:  1.0.5\n",
      "Scikit-learn version:  0.23.1\n"
     ]
    }
   ],
   "source": [
    "print(\"Tensorflow Version: \", tf.__version__)\n",
    "print(\"Numpy version: \", np.__version__)\n",
    "print(\"Pandas version: \", pd.__version__)\n",
    "print(\"Scikit-learn version: \", sklearn.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Piecewise linear\n",
    "* Early RUL: 125\n",
    "* Window length: 30\n",
    "* Shift: 1\n",
    "* Data scaling: MinMaxScaling with feature range of [-1, 1]. We will **not** preform individual enginewise scaling. Rather, we will apply the scaling to the full column of training data. Why do we do that? One reason is to achieve to better result. If enginewise scaling is preformed, we achieve higher RMSE value. But if we perform, full dataset scaling, we achieve lower RMSE values (which is better).\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD001.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the following cell, we will apply `MinMaxScaling` to the full trianing dataset."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (17731, 30, 14)\n",
      "Processed training ruls shape:  (17731,)\n",
      "Processed test data shape:  (497, 30, 14)\n",
      "True RUL shape:  (100,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD001.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv(\"/home/biswajit/data/cmapss_data/RUL_FD001.txt\", sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 30\n",
    "shift = 1\n",
    "early_rul = 125            \n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the default), only last window of test data for \n",
    "# each engine is taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4,5,9,10,14,20,22,23]\n",
    "\n",
    "train_data_first_column = train_data[0]\n",
    "test_data_first_column = test_data[0]\n",
    "\n",
    "# Scale data for all engines\n",
    "scaler = MinMaxScaler(feature_range = (-1,1))\n",
    "train_data = scaler.fit_transform(train_data.drop(columns = columns_to_be_dropped))\n",
    "test_data = scaler.transform(test_data.drop(columns = columns_to_be_dropped))\n",
    "\n",
    "train_data = pd.DataFrame(data = np.c_[train_data_first_column, train_data])\n",
    "test_data = pd.DataFrame(data = np.c_[test_data_first_column, test_data])\n",
    "\n",
    "num_train_machines = len(train_data[0].unique())\n",
    "num_test_machines = len(test_data[0].unique())\n",
    "\n",
    "# Process training and test data sepeartely as number of engines in training and test set may be different.\n",
    "# As we are doing scaling for full dataset, we are not bothered by different number of engines in training and test set.\n",
    "\n",
    "# Process trianing data\n",
    "for i in np.arange(1, num_train_machines + 1):\n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns = [0]).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from training data\n",
    "    if (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "        \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "\n",
    "# Process test data\n",
    "for i in np.arange(1, num_test_machines + 1):\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns = [0]).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle training data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training and validation split\n",
    "\n",
    "We will take 20% of training data (sampled randomly) as our validation set. We will monitor the training of our model using the validation set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (14184, 30, 14)\n",
      "Processed validation data shape:  (3547, 30, 14)\n",
      "Processed train targets shape:  (14184,)\n",
      "Processed validation targets shape:  (3547,)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data, processed_val_data, processed_train_targets, processed_val_targets = train_test_split(processed_train_data,\n",
    "                                                                                                            processed_train_targets,\n",
    "                                                                                                            test_size = 0.2,\n",
    "                                                                                                            random_state = 83)\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed validation data shape: \", processed_val_data.shape)\n",
    "print(\"Processed train targets shape: \", processed_train_targets.shape)\n",
    "print(\"Processed validation targets shape: \", processed_val_targets.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1D CNN model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_compiled_model():\n",
    "    model = Sequential([\n",
    "        layers.Conv1D(256, 7, activation = \"relu\", input_shape = (window_length, processed_train_data.shape[2])),\n",
    "        layers.Conv1D(96, 7, activation = \"relu\"),\n",
    "        layers.Conv1D(32, 7, activation = \"relu\"),\n",
    "        layers.GlobalAveragePooling1D(),\n",
    "        layers.Dense(64, activation = \"relu\"),\n",
    "        layers.Dense(128, activation = \"relu\"),\n",
    "        layers.Dense(1)\n",
    "    ])\n",
    "    model.compile(loss = \"mse\", optimizer = tf.keras.optimizers.Adam(learning_rate=0.001))\n",
    "    return model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will use a learning rate scheduler that will decrease the learning rate after 10 epochs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def scheduler(epoch):\n",
    "    if epoch < 10:\n",
    "        return 0.001\n",
    "    else:\n",
    "        return 0.0001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "callback = tf.keras.callbacks.LearningRateScheduler(scheduler, verbose = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Epoch 00001: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 1/30\n",
      "222/222 - 1s - loss: 974.8514 - val_loss: 400.6015\n",
      "\n",
      "Epoch 00002: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 2/30\n",
      "222/222 - 1s - loss: 373.8977 - val_loss: 317.1386\n",
      "\n",
      "Epoch 00003: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 3/30\n",
      "222/222 - 1s - loss: 293.8700 - val_loss: 262.0675\n",
      "\n",
      "Epoch 00004: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 4/30\n",
      "222/222 - 1s - loss: 276.3773 - val_loss: 261.7391\n",
      "\n",
      "Epoch 00005: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 5/30\n",
      "222/222 - 1s - loss: 257.5860 - val_loss: 249.2876\n",
      "\n",
      "Epoch 00006: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 6/30\n",
      "222/222 - 1s - loss: 246.6330 - val_loss: 251.1239\n",
      "\n",
      "Epoch 00007: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 7/30\n",
      "222/222 - 1s - loss: 231.0293 - val_loss: 235.1611\n",
      "\n",
      "Epoch 00008: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 8/30\n",
      "222/222 - 1s - loss: 217.4109 - val_loss: 209.2213\n",
      "\n",
      "Epoch 00009: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 9/30\n",
      "222/222 - 1s - loss: 204.5818 - val_loss: 192.8079\n",
      "\n",
      "Epoch 00010: LearningRateScheduler reducing learning rate to 0.001.\n",
      "Epoch 10/30\n",
      "222/222 - 1s - loss: 194.9784 - val_loss: 177.4646\n",
      "\n",
      "Epoch 00011: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 11/30\n",
      "222/222 - 1s - loss: 164.2075 - val_loss: 169.2458\n",
      "\n",
      "Epoch 00012: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 12/30\n",
      "222/222 - 1s - loss: 161.0152 - val_loss: 169.1600\n",
      "\n",
      "Epoch 00013: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 13/30\n",
      "222/222 - 1s - loss: 159.0215 - val_loss: 167.6503\n",
      "\n",
      "Epoch 00014: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 14/30\n",
      "222/222 - 1s - loss: 157.4190 - val_loss: 162.8624\n",
      "\n",
      "Epoch 00015: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 15/30\n",
      "222/222 - 1s - loss: 156.7276 - val_loss: 161.2571\n",
      "\n",
      "Epoch 00016: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 16/30\n",
      "222/222 - 1s - loss: 153.0536 - val_loss: 159.8385\n",
      "\n",
      "Epoch 00017: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 17/30\n",
      "222/222 - 1s - loss: 152.4522 - val_loss: 174.0166\n",
      "\n",
      "Epoch 00018: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 18/30\n",
      "222/222 - 1s - loss: 149.5692 - val_loss: 158.1539\n",
      "\n",
      "Epoch 00019: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 19/30\n",
      "222/222 - 1s - loss: 147.4278 - val_loss: 153.0446\n",
      "\n",
      "Epoch 00020: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 20/30\n",
      "222/222 - 1s - loss: 145.4222 - val_loss: 151.1558\n",
      "\n",
      "Epoch 00021: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 21/30\n",
      "222/222 - 1s - loss: 143.5876 - val_loss: 149.4101\n",
      "\n",
      "Epoch 00022: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 22/30\n",
      "222/222 - 1s - loss: 142.5752 - val_loss: 156.3705\n",
      "\n",
      "Epoch 00023: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 23/30\n",
      "222/222 - 1s - loss: 140.0251 - val_loss: 143.1531\n",
      "\n",
      "Epoch 00024: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 24/30\n",
      "222/222 - 1s - loss: 138.3628 - val_loss: 141.1622\n",
      "\n",
      "Epoch 00025: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 25/30\n",
      "222/222 - 1s - loss: 134.8550 - val_loss: 139.1081\n",
      "\n",
      "Epoch 00026: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 26/30\n",
      "222/222 - 1s - loss: 133.0633 - val_loss: 137.0386\n",
      "\n",
      "Epoch 00027: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 27/30\n",
      "222/222 - 1s - loss: 132.2615 - val_loss: 142.1718\n",
      "\n",
      "Epoch 00028: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 28/30\n",
      "222/222 - 1s - loss: 129.6904 - val_loss: 135.1837\n",
      "\n",
      "Epoch 00029: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 29/30\n",
      "222/222 - 1s - loss: 126.1612 - val_loss: 142.2262\n",
      "\n",
      "Epoch 00030: LearningRateScheduler reducing learning rate to 0.0001.\n",
      "Epoch 30/30\n",
      "222/222 - 1s - loss: 124.8482 - val_loss: 128.6767\n"
     ]
    }
   ],
   "source": [
    "model = create_compiled_model()\n",
    "history = model.fit(processed_train_data, processed_train_targets, epochs = 30,\n",
    "                    validation_data = (processed_val_data, processed_val_targets),\n",
    "                    callbacks = callback,\n",
    "                    batch_size = 64, verbose = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Why did we run the model only for 30 epochs, even though the validation loss seems to be decreasing? Well, while training this model for more epochs, we previously observed that it is possible to decrease the validation loss to a very small number. But in that case, our actual test loss is not that great. This is because our model is overfitting the validation dataset. So to get a good test performance, we should stop our training at an intermediate value of the validation loss. We chose 20 epochs as that gives a good enough test error."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  15.840224903331368\n"
     ]
    }
   ],
   "source": [
    "rul_pred = model.predict(processed_test_data).reshape(-1)\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Save the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf.keras.models.save_model(model, \"FD001_1D_CNN_piecewise_RMSE_\"+ str(np.round(RMSE, 4)) + \".h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will now compute the RMSE by taking only last example of each engine."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  16.289587641597432\n"
     ]
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "preds_for_last_example = np.concatenate(preds_for_each_engine)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  459.5442958759381\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is very likely that readers may get sligtly different results while running this notebook on their system. This happens because of the nondeterministic nature of some deep learning operations and dependence of libraries like `Tensorflow` on computer architecture. Therefore, to make our results reproducible, we also share saved models of all our notebooks. All saved models can be found [here](https://github.com/biswajitsahoo1111/rul_codes_open/tree/master/saved_models/cmapss). A notebook describing the procedure to use the saved models can be found [here](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_using_saved_model_deep_learning.ipynb). As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
